PageBase

open class PageBase<T : PageBase<T>> @JvmOverloads constructor(val baseHelper: BaseHelper, val link: String? = null) : PageHelper

Базовый класс, от которого наследуются классы страниц, реализующие шаблон Page Object.

Предоставляет методы для взаимодействия со страницей браузера и методы создания элементов (getElementById, getElementByXpath и другие).

Пример страницы:

public class Page extends PageBase<Page> {
public Element element = getElementById("id", "Описание элемента");

public Page(BaseHelper baseHelper) {
super(baseHelper, PropertiesHelper.getProperty("page.link"));
}

public Page doSomething() {
element.click();
// ...
// ...
return this;
}
}

Пример использования страницы:

pages.page.open();
pages.page.doSomething();
pages.page.refresh();

или (fluent-стиль)

pages.page.open()
.doSomething()
.refresh();

и т.д.

Parameters

baseHelper

Объект базового класса

link

По умолчанию null. Ссылка на страницу

Constructors

Link copied to clipboard
constructor(baseHelper: BaseHelper, link: String? = null)

Конструктор класса

Types

Link copied to clipboard
class Alert<T : PageBase<T>>(val browser: Browser, val pageBase: PageBase<T>)

Класс с методами взаимодействия с диалоговыми окнами на странице.

Link copied to clipboard
class Cookies<T : PageBase<T>>(val browser: Browser, val pageBase: PageBase<T>)

Класс с методами взаимодействия с Cookie.

Link copied to clipboard
class Frame<T : PageBase<T>>(val browser: Browser, val pageBase: PageBase<T>)

Класс с методами взаимодействия с фреймами на странице.

Link copied to clipboard
class JSExecutor<T : PageBase<T>>(val browser: Browser, val pageBase: PageBase<T>)

Класс с методами выполнения скриптов JavaScript

Link copied to clipboard
class Window<T : PageBase<T>>(val browser: Browser, val pageBase: PageBase<T>)

Класс с методами изменения размера окна браузера, действий с вкладками.

Properties

Link copied to clipboard
private val base: BaseHelper
Link copied to clipboard
private val baseHelper: BaseHelper
Link copied to clipboard
private val browser: Browser
Link copied to clipboard
private val link: String? = null

Functions

Link copied to clipboard

Получение активного элемента - элемента, на котором установлен фокус. Если фокуса нет ни на одном элементе, то возвращается элемент body

Link copied to clipboard

Возвращает объект с методами взаимодействия с диалогововыми окнами на странице

Link copied to clipboard

Возвращает объект с методами взаимодействия с Cookie

Link copied to clipboard
fun getDevTools(): DevTools

Получение объекта DevTools

Link copied to clipboard
protected fun getElementByClassName(className: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью className в качестве локатора

protected fun getElementByClassName(parent: Element, className: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью className в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

Link copied to clipboard
protected fun getElementByCssSelector(cssSelector: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью cssSelector в качестве локатора.

protected fun getElementByCssSelector(parent: Element, cssSelector: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью cssSelector в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

Link copied to clipboard
protected fun getElementByCustomLocator(locator: By, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью кастомного локатора.

protected fun getElementByCustomLocator(parent: Element, locator: By, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью кастомного локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

Link copied to clipboard
protected fun getElementById(id: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью id в качестве локатора

protected fun getElementById(parent: Element, id: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью id в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

Link copied to clipboard
protected fun getElementByLinkText(linkText: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью linkText в качестве локатора

protected fun getElementByLinkText(parent: Element, linkText: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью linkText в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

Link copied to clipboard
protected fun getElementByName(name: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью name в качестве локатора

protected fun getElementByName(parent: Element, name: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью name в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

Link copied to clipboard
protected fun getElementByPartialLinkText(partialLinkText: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью partialLinkText в качестве локатора

protected fun getElementByPartialLinkText(parent: Element, partialLinkText: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью partialLinkText в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

Link copied to clipboard
protected fun getElementByRelativeLocator(locator: RelativeLocator.RelativeBy, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью относительного (org.openqa.selenium.support.locators.RelativeLocator.RelativeBy) локатора (создается методом org.openqa.selenium.support.locators.RelativeLocator.with).

protected fun getElementByRelativeLocator(parent: Element, locator: RelativeLocator.RelativeBy, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью относительного (org.openqa.selenium.support.locators.RelativeLocator.RelativeBy) локатора (создается методом org.openqa.selenium.support.locators.RelativeLocator.with). Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск.

Link copied to clipboard
protected fun getElementByTagName(tagName: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью tagName в качестве локатора

protected fun getElementByTagName(parent: Element, tagName: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью tagName в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

Link copied to clipboard
protected fun getElementByXpath(xpath: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью xpath в качестве локатора

protected fun getElementByXpath(parent: Element, xpath: String, description: String, hidden: Boolean = false): Element

Создание объекта Element с помощью xpath в качестве локатора. Первым параметром метод принимает родительский Element, в контексте которого будет осуществляться поиск

Link copied to clipboard

Возвращает объект с методами взаимодействия с фреймами на странице

Link copied to clipboard

Возвращает объект с методами выполнения javascript

Link copied to clipboard
protected fun <T : PageBase<T>> getPage(cls: Class<T>): T

Метод создает объект класса, описывающего страницу или часть страницы для паттерна PageObject. Класс должен наследоваться от PageBase

Link copied to clipboard

Возвращает объект с методами изменения размера окна браузера, действий с вкладками

Link copied to clipboard
fun navigate(url: URL?): PageBase<T>
fun navigate(link: String?): PageBase<T>

Переход по ссылке

Link copied to clipboard

Переход на предыдущую страницу

Link copied to clipboard

Переход на следующую страницу из истории браузера

Link copied to clipboard
fun open(): T

Переход на страницу. Если в конструктор класса PageBase, от которого наследуется класс страницы, не передан параметр link, то при вызове метода ничего не происходит

Link copied to clipboard
fun performActions(message: String, consumer: Consumer<Actions>): T

Выполнение действий над элементами с помощью Actions. Используется в связке с методом Element.toWebElement.

Link copied to clipboard
fun refresh(): T

Обновление страницы

Link copied to clipboard
fun setWebDriverSettings(message: String, consumer: Consumer<WebDriver>)

Настройка WebDriver через лямбду-consumer

Link copied to clipboard
fun sleep(millis: Long): T

Пауза в заданное количество миллисекунд.